
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>ISROBOT四足机器人程序使用说明文档 &#8212; LeggedRobot  documentation</title>
    <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    './',
        VERSION:     '',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true,
        SOURCELINK_SUFFIX: '.txt'
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="一起来做机器人的“思想”" href="cooper.html" />
    <link rel="prev" title="四足机器人模型、运动学与动力学(三连杆模型)" href="mathdescription/math.html" /> 
  </head>
  <body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="cooper.html" title="一起来做机器人的“思想”"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="mathdescription/math.html" title="四足机器人模型、运动学与动力学(三连杆模型)"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="begin.html">LeggedRobot  documentation</a> &#187;</li> 
      </ul>
    </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h4>Previous topic</h4>
  <p class="topless"><a href="mathdescription/math.html"
                        title="previous chapter">四足机器人模型、运动学与动力学(三连杆模型)</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="cooper.html"
                        title="next chapter">一起来做机器人的“思想”</a></p>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <form class="search" action="search.html" method="get">
      <div><input type="text" name="q" /></div>
      <div><input type="submit" value="Go" /></div>
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <p><em>Section author: 常旭 &lt;<a class="reference external" href="mailto:457911161&#37;&#52;&#48;qq&#46;com">457911161<span>&#64;</span>qq<span>&#46;</span>com</a>&gt;</em></p>
<div class="section" id="isrobot">
<h1>ISROBOT四足机器人程序使用说明文档<a class="headerlink" href="#isrobot" title="Permalink to this headline">¶</a></h1>
<p>ISROBOT四足机器人程序由C++语言编写，主要由核心四足机器人代码和外围通信组件构成。核心四足机器人代码是独立于操作系统与硬件平台的，外围通信组件目前采用的是IGNITION ROBOTICS的Transport。四足机器人程序目前支持的机器人结构为单刚体躯干外加四个肢体，每个肢体由三连杆组成。第一个连杆与躯干构成的关节为髋侧关节，第二个连杆与第一个连杆构成的关节为髋前关节，两关节轴线成90度夹角，第三个连杆与第二个连杆构成的关节为膝关节，其轴线与第二关节轴线平行。当前程序支持的特性如下：</p>
<p>1.支持Gazebo仿真环境，配有相应的四足机器人模型文件。</p>
<p>2.与提供的matlab_app程序通信，生成Matlab数据文件。</p>
<p>在使用本程序前应具备以下知识：</p>
<p>1.读过机器人学相关书籍，如《机器人学导论》。</p>
<p>2.熟悉Ubuntu操作系统。</p>
<p>3.如果要使用本程序支持的仿真环境Gazebo，需要了解Gazebo的基本操作及功能。Gazebo的学习资料可参见官网 <a class="reference external" href="http://gazebosim.org/tutorials">http://gazebosim.org/tutorials</a> 。</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">本程序的理论依据和详细数学模型请参考文档 <a class="reference internal" href="mathdescription/math.html#math-doc-label"><span class="std std-ref">四足机器人模型、运动学与动力学(三连杆模型)</span></a>。</p>
</div>
<p>下面将介绍如何使程序在Gazebo仿真环境中运行。</p>
<div class="section" id="id1">
<h2>开始<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
<div class="section" id="id2">
<h3>环境搭建<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
<p>1.首先安装Ubuntu操作系统，建议版本18.04。</p>
<p>2.建议直接安装ROS机器人操作系统，安装方法可参见官网 <a class="reference external" href="https://www.ros.org">https://www.ros.org</a>，ROS安装好后会包含有Gazebo。注意：不要下载源文件自己编译生成ROS，要按照官网安装指示直接下载编译好的文件。</p>
<p>3.控制台输入 git clone <a class="reference external" href="https://github.com/NUDT-robot/quadrupedrobot.git">https://github.com/NUDT-robot/quadrupedrobot.git</a>。下载完成后，要了解文件结构请参见 <a class="reference internal" href="filedescription/filestructure.html#filestructure-label"><span class="std std-ref">文件组织结构</span></a>。</p>
<p>4.Quadruped_Robot3文件夹是一个Gazebo可识别的四足机器人模型，将这个文件夹放到Gazebo能找到的位置(在GAZEBO_MODEL_PATH中指定，参见 <a class="reference external" href="http://gazebosim.org/tutorials?tut=components&amp;cat=get_started">http://gazebosim.org/tutorials?tut=components&amp;cat=get_started</a> 关于Environment Variables的描述)。</p>
<p>5.gazebo_plugin是加载模型时用到的插件，将这个文件夹放到Gazebo能找到的位置(在GAZEBO_PLUGIN_PATH中指定，参见 <a class="reference external" href="http://gazebosim.org/tutorials?tut=components&amp;cat=get_started">http://gazebosim.org/tutorials?tut=components&amp;cat=get_started</a> 关于Environment Variables的描述)。</p>
<p>6.打开一个终端，输入命令gazebo，然后找到Quadruped_Robot模型并加入仿真环境中。如果要使用这里提供的Gazebo世界文件，在命令行中运行gazebo quadrobot.world即可。</p>
<p>7.点击Gazebo中的Play按钮，开始仿真。</p>
<p>8.四足机器人程序由CMake管理，进入RobotClass/quadrupledrobot文件夹，在命令行中运行cmake，然后运行make即可完成编译，建议在Qt、Eclipse等IDE中编译并进行开发。默认情况下对matlab库的依赖已被注释掉，如有需要，自行修改添加相关路径即可。</p>
<p>9.编译完成后会生成可执行文件quadrupedrobot，在命令行中输入./quadrupedrobot即可使程序运行。</p>
<p>10.在Gazebo中观察到机器人从趴下到站起的过程，表明四足机器人程序与Gazebo的环境搭建完成。</p>
</div>
<div class="section" id="id3">
<h3>在哪里写自己的代码？<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h3>
<p>有关程序代码的结构与移植请参考开发者文档中的 <a class="reference internal" href="Portable/item.html#portarc"><span class="std std-ref">代码结构与移植</span></a> 。</p>
<p>打开quadrupedrobot.cpp文件，找到函数QuadRobot::GaitAlgorithm，所有机器人控制算法的实现可以在这里完成。</p>
</div>
<div class="section" id="id4">
<h3>机器人状态变量和可调用的函数<a class="headerlink" href="#id4" title="Permalink to this headline">¶</a></h3>
<p>编写控制算法时要用到机器人的相应信息和状态，以下表格给出当前可得到的机器人内部对象、状态以及控制机器人执行相应动作的函数。</p>
<p>可用的机器人变量( <a class="reference internal" href="classdescription/class_QuadRobot.html#quadrobot-class-member-label"><span class="std std-ref">详见QuadRobot类成员变量</span></a>):</p>
<a class="reference internal image-reference" href="_images/table-robotstate.jpg"><img alt="_images/table-robotstate.jpg" src="_images/table-robotstate.jpg" style="width: 500px;" /></a>
<p>可用的肢体及关节变量( <a class="reference internal" href="classdescription/class_LimbModel.html#limbmodel-class-function-public-label"><span class="std std-ref">详见LimbModel类公共成员函数</span></a>):</p>
<a class="reference internal image-reference" href="_images/table-limbstate.jpg"><img alt="_images/table-limbstate.jpg" src="_images/table-limbstate.jpg" style="width: 500px;" /></a>
<p>可用的控制命令( <a class="reference internal" href="classdescription/class_QuadRobot.html#quadrobot-class-function-ctrl-label"><span class="std std-ref">详见QuadRobot类控制函数</span></a>):</p>
<a class="reference internal image-reference" href="_images/table-control.jpg"><img alt="_images/table-control.jpg" src="_images/table-control.jpg" style="width: 500px;" /></a>
<p>有关本程序的详细说明应参考 <a class="reference internal" href="docDevel.html#devel-doc"><span class="std std-ref">ISROBOT四足机器人程序开发文档</span></a> 。</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">如果您发现任何有关文档或程序中出现的错误，可以联系邮箱457911161&#64;qq.com，随时欢迎您提出宝贵意见。</p>
</div>
<p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p>
</div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="cooper.html" title="一起来做机器人的“思想”"
             >next</a> |</li>
        <li class="right" >
          <a href="mathdescription/math.html" title="四足机器人模型、运动学与动力学(三连杆模型)"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="begin.html">LeggedRobot  documentation</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright 2019, Xu Chang.
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.7.
    </div>
  </body>
</html>